package com.ruoyi.project.system.setting.service;

import com.ruoyi.project.monitor.job.domain.Point3D;
import com.ruoyi.project.system.setting.domain.TbParamSetting;
import org.springframework.stereotype.Service;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 基本参数设置Service接口
 * 
 * @author kangjie
 * @date 2019-12-28
 */

public interface ITbParamSettingService
{
    /**
     * 查询基本参数设置
     * 
     * @param id
     * @return 基本参数设置
     */
    public TbParamSetting selectTbParamSettingById(String id);

    /**
     * 查询基本参数设置列表
     * 
     * @param tbParamSetting 基本参数设置
     * @return 基本参数设置集合
     */
    public List<TbParamSetting> selectTbParamSettingList(TbParamSetting tbParamSetting);

    /**
     * 新增基本参数设置
     * 
     * @param tbParamSetting 基本参数设置
     * @return 结果
     */
    public int insertTbParamSetting(TbParamSetting tbParamSetting);

    /**
     * 修改基本参数设置
     * 
     * @param tbParamSetting 基本参数设置
     * @return 结果
     */
    public int updateTbParamSetting(TbParamSetting tbParamSetting);

    /**
     * 批量删除基本参数设置
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTbParamSettingByIds(String ids);

    /**
     * 删除基本参数设置信息
     * 
     * @param ${pkColumn.javaField} 基本参数设置ID
     * @return 结果
     */
    public int deleteTbParamSettingById(String id);

    /**
     * 校验启用数据不能大于两条
     *
     */
    public void checkFlag();

    /**
     * 修改数据状态
     * @param tbParamSetting
     * @return
     */
    public int updateFlag(TbParamSetting tbParamSetting);

    /**
     * 获取基本参数 flag=0
     * @return
     */
    public TbParamSetting getParam();

    /**
     * 自动处理点云数据
     * @param list
     * @return
     */
    public String autoDeal(List<Point3D> list);

    /**
     * 保存plc发送的状态
     * @param fOpen
     * @param startStatus
     * @param model
     * @return
     */
    public String savePlcStatus( String startStatus,String model,
    		String count,String error,
    		String is_complete);

    /**
     * 获取某日的登录次数
     * @return
     */
    public Map<String,Long> getLoginDayCount();


    /**
     * 获取某日的扫描次数
     * @return
     */
    public Map<String,Long> getScanDayCount();

    /**
     * 获取自动登录次数
     * @return
     */
    public Map<String,Long> getAutoLoginDayCount();
    /**
     * 获取半自动操作次数
     * @return
     */
    public Map<String,Long> getSemiAutoOperationDayCount();
}
